package cn.jy.map.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.jy.map.utils.Results;

/**
 * @author Bruin
 *
 */
public interface PlasmaCountMapper {
	/**
	 * 新江员年度统计，注册时间和献浆时间都相同
	 * 
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	public int getNewPlasmaCount(@Param("startTime") String startTime, @Param("endTime") String endTime);

	/**
	 * 当年的新浆员在下一年进站人数的统计
	 * 
	 * @param startTime
	 *            过去年起始时间
	 * @param endTime
	 *            过去年结束时间
	 * @param startTime1
	 *            当年起始时间
	 * @param endTime1
	 *            当年结束时间
	 * @return
	 */
	public int getNewPlasmaJZCount(@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * 当年的新浆员在下一年的浆量统计
	 * 
	 * @param startTime
	 *            过去年起始时间
	 * @param endTime
	 *            过去年结束时间
	 * @param startTime1
	 *            当年起始时间
	 * @param endTime1
	 *            当年结束时间
	 * @return
	 */
	public int getJLCount(@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * 16年以前的总人数 比如2017年以前注册的浆员总数
	 * 
	 * @param endTime
	 *            穿2016-12-31
	 * @return
	 */
	public int getBeforeJYCount(@Param("endTime") String endTime);

	/**
	 * <17年以前浆员，在17年的进站人数统计-->
	 * 
	 * @param endTime
	 * @param startTime1
	 * @param endTime1
	 * @return
	 */
	public int getBeforeJLCount(@Param("endTime") String endTime, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * 2016年底前注册2018年进站人数
	 * 
	 * @param endTime
	 *            2016-12-31
	 * @param startTime1
	 *            2018-01-01
	 * @param endTime1
	 * @return
	 */
	public int getFormeryearsJYJZCount(@Param("endTime") String endTime, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * 得到2016-12-31以前注册的人数
	 */
	public List<Results> getJYAmount(@Param("endTime") String endTime);

	/**
	 * 得到16年底注册，在17年没有献浆的总人数
	 */
	public List<Results> getYJCount(@Param("ProviderNo") String ProviderNo, @Param("startTime") String startTime,
			@Param("endTime") String endTime);

	/**
	 * 得到复苏的浆员
	 */
	public int getRecoveryJY(@Param("ProviderNo") String ProviderNo, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * 得到17年底注册在18年进站人数
	 */
	public int getdCurrentYearIntoStation(@Param("endTime") String endTime, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * 2018年采浆数量
	 */
	public int getPlasmaCount(@Param("endTime") String endTime, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * 统计18年每个月血浆的总袋数
	 */
	public int getPlasmaNumberBags(@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * 根据性别统计浆员
	 */
	public int getPlasmaStatisticsByGender(@Param("Sex") String Sex, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * 根据职业去统计浆员
	 */
	public int getPlasmaStatisticsByMetier(@Param("Metier") String Metier, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * 根据年龄去统计浆员
	 */
	public int getPlasmaStatisticsByAge(@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * 大于55岁的浆员
	 */
	public int getPlasmaStatisticsByOtherAge(@Param("endTime") String endTime, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * Metier IN ('','个体户','其他') 其他类的浆员
	 */
	public int getPlasmaStatisticsByOther1(@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * Metier IS NULL 其他类的浆员
	 */
	public int getPlasmaStatisticsByOther2(@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * 按职业分类统计浆员的主要来源
	 */
	public int getPlasmaCountClassifications(@Param("Metier") String Metier, @Param("startTime") String startTime,
			@Param("endTime") String endTime, @Param("startTime1") String startTime1,
			@Param("endTime1") String endTime1);

	/**
	 * Metier IN ('','个体户','其他') 其他职业分类
	 */
	public int getPlasmaCountClassificationsByOther1(@Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * Metier IS NULL 其他职业分类
	 */
	public int getPlasmaCountClassificationsByOther2(@Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/***
	 * 其他职业分类
	 */
	public int getOtherProfessionalCount(@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/***
	 * 其他职业分类
	 */
	public int getOtherProfessionalCount2(@Param("startTime") String startTime, @Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	public int getOtherJobCount(@Param("Metier") String Metier, @Param("endTime") String endTime,
			@Param("startTime1") String startTime1, @Param("endTime1") String endTime1);

	/**
	 * 统计每个月的新建档人数
	 */
	public List<Integer> getNumberRegistrationsPerMonth(@Param("startTime") String startTime, @Param("endTime") String endTime);

	/**
	 * 新浆员建档人数的分类统计结果
	 */
	public List<Results> getClassifyStatisticsRsults(@Param("startTime") String startTime,
			@Param("endTime") String endTime);

	/**
	 * 反站浆员的总浆量
	 */
	public int getPlasmaReturnStand(@Param("ProviderNo") String ProviderNo, @Param("startTime") String startTime,
			@Param("endTime") String endTime);
	/**
	 * 上月新浆员来本月献浆的总人数
	 * @return
	 */
	public int getPlasmaIntervalStatistics(@Param("ProviderNo") String ProviderNo, @Param("startTime") String startTime,
			@Param("endTime") String endTime);
	/**
	 * 上月注册在本月来献浆的浆量
	 */
	public List<Integer> getRegisteredOfMonthPlasma(@Param("startTime") String startTime,@Param("endTime") String endTime);
}
